﻿using CLM.Gestao.Protheus.DAL;
using System.Collections.Generic;
using System.Linq;

namespace CLM.Gestao.Protheus.BLL
{
    public class SPVendasGalderma : SPVendasGaldermaBLO
    {
        #region Propriedades

        public string Nota { get; set; }
        public string Serie { get; set; }
        public string CodigoCliente { get; set; }
        public string NomeCliente { get; set; }
        public string Estado { get; set; }
        public string CodigoProduto { get; set; }
        public string NomeProduto { get; set; }
        public string Tipo { get; set; }
        public double? Quantidade { get; set; }
        public double? Mercadoria { get; set; }
        public double? Repasse { get; set; }
        public double? Desconto { get; set; }
        public double? Liquido { get; set; }

        #endregion Propriedades

        public List<SPVendasGalderma> ExecutaProcedure(int pMes, int pAno)
        {
            List<SPVendasGalderma> proc = (from p in GetAll(pMes, pAno)
                                           select new SPVendasGalderma
                                                   {
                                                       CodigoCliente = p.CLIENTE,
                                                       CodigoProduto = p.PRODUTO.Trim().PadLeft(9, '0'),
                                                       Desconto = p.DESCONTO,
                                                       Estado = p.ESTADO,
                                                       Liquido = p.LIQUIDO,
                                                       Mercadoria = p.MERCADORIA,
                                                       NomeCliente = p.NREDUZ,
                                                       NomeProduto = p.DESCPROD,
                                                       Nota = p.NOTA,
                                                       Quantidade = p.QUANTIDADE,
                                                       Repasse = p.REPASSE,
                                                       Serie = p.SERIE,
                                                       Tipo = p.B1_XTIPO
                                                   }).ToList();

            return proc;
        }
    }

    public class SPVendasGaldermaBLO
    {
        /// <summary>
        /// SPVendasGaldermaDAO
        /// </summary>
        private SPVendasGaldermaDAO _base = new SPVendasGaldermaDAO();

        /// <summary>
        /// Recupera uma entidade do sistema
        /// </summary>
        /// <returns>Lista</returns>
        public List<SP_GALD_BIRDS_VENDAS_REALIZADAS_Result> GetAll(int pMes, int pAno)
        {
            return _base.GetAll(pMes, pAno);
        }
    }
}